package ch.kerbtier.malurus.updaters;

import java.util.ArrayList;
import java.util.List;

import ch.kerbtier.malurus.UpdateProvider;
import ch.kerbtier.malurus.Updater;

public class ChainUpdateProvider implements UpdateProvider {

	private List<UpdateProvider> updaters = new ArrayList<UpdateProvider>();

	public void add(UpdateProvider updater) {
		updaters.add(updater);
	}

	public Updater getUpdater(String component, String realisation) {
		for (UpdateProvider r : updaters) {
			Updater up = r.getUpdater(component, realisation);
			if (up != null) {
				return up;
			}
		}
		for (UpdateProvider r : updaters) {
			Updater up = r.getUpdater(component, null);
			if (up != null) {
				return up;
			}
		}
		return null;
	}
}
